As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling system's may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, an information handling system may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
An information handling system can be configured in several different configurations. The information handling system can range from a single, stand-alone computer system to a distributed, multi-device computer system, to a networked computer system with remote or cloud storage systems. Both local computer storage systems and remote or cloud storage systems can include redundant arrays of independent drives (RAID) that use hard disk drives or solid state storage drives. Various “levels” of RAID configurations are well known to those in the field of data storage systems.
While the acronym itself suggests that redundancy is a significant feature of RAID systems, only RAID 1 systems and their variants rely extensively upon data redundancy. Apart from RAID 1 systems, most commercially significant RAID configurations attempt to ensure data integrity primarily through the use of parity, which requires significantly less storage capacity than pure redundancy, i.e., duplication. If a parity bit is generated for each 8-bit byte of data, the utilization of a given capacity of storage K is (8/9)*K since only 1 out of every 9 bits is required for parity. In contrast, RAID 1 duplication achieves, at best, 50% utilization and still lower utilization if data is duplicated on two or more redundant drives.
Aside from redundancy vs. parity, a distinguishing characteristic of various RAID systems is the manner in which data is stored on multiple disks. Data may be striped across a set of disks at different levels of granularity. In RAID 3 systems, for example, data is striped across a set of disks at a byte level such that bytes of data that are adjacent from a programming perspective reside on different physical drives. In RAID 4 systems, data is striped at a multi-byte granularity referred to as a block.
Another distinguishing characteristic of RAID levels that employ parity is the manner in which parity information is stored. RAID 3 and RAID 4 systems use a dedicated drive for parity, i.e., all parity is stored on the same drive regardless of which drive the corresponding data is stored on. Because the use of a dedicated parity drive has negative performance implications, RAID 3 and RAID 4 systems are rarely encountered.
RAID 5 employs block level striping of data with a single parity bit (P) per each byte of data being distributed across the same drives as the data. While RAID 5 has good read/write performance relative to RAID 3 and RAID 4 and good utilization relative to RAID 1, RAID 5 parity provides data integrity only to the extent that no two or more drives ever fail at the same time. As long as only one drive fails at a time, lost data can be re-generated from the remaining drives.
RAID 6 is conceptually similar to RAID 5, but generates a second parity bit (Q) for each byte of data such that there are two parity bits (P and Q) for each byte of data. While the generation of the second parity bit (Q) may be non-trivial in terms of processor clock cycles and time, RAID 6 systems provide improved data integrity over RAID 5 systems by providing data integrity in the case of a two-drive failure.